package com.good.shopping.search.vo;

import com.good.common.to.es.SkuEsModel;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * ES
 * 查询商品的返回结果 - 封装数据
 * @author yan
 */
@Data
public class SearchResult {

    /**
     * 查询到的所有商品信息
     */
    private List<SkuEsModel> products;


    /**
     * 当前页码
     */
    private Integer pageNum;

    /**
     * 总记录数
     */
    private Long total;

    /**
     * 总页码
     */
    private Integer totalPages;

    // 分页总数  1,2,3,4...5
    private List<Integer> pageNavs;

    /**
     * 当前查询到的结果，所有涉及到的品牌
     */
    private List<BrandVo> brands;

    /**
     * 当前查询到的结果，所有涉及到的所有属性
     */
    private List<AttrVo> attrs;

    /**
     * 当前查询到的结果，所有涉及到的所有分类
     */
    private List<CatalogVo> catalogs;


    //===========================以上是返回给页面的所有信息============================//


    /* 面包屑导航数据 */
    private List<NavVo> navs = new ArrayList<>();
    // 哪些属性id 被筛选了
    private List<Long> attrIds = new ArrayList<>();

    // 面包屑 -可前端做 （）页面有面包屑，当关闭一个导航，跳转到新的地址
    @Data
    public static class NavVo {
        private String navName;  // 导航名字  例子：操作系统
        private String navValue; // 导航值    例子：安卓
        private String link;     // 跳转地址  例子：跳转的地址
    }

    // 品牌
    @Data
    public static class BrandVo {
        private Long brandId;     // 品牌id
        private String brandName; // 品牌名字
        private String brandImg;  // 品牌图片
    }

    // 所有属性
    @Data
    public static class AttrVo {
        private Long attrId;            // id
        private String attrName;        // 属性名字 例 CPU
        private List<String> attrValue; // 属性值   例 海思、晓龙、ios
    }

    // 分类
    @Data
    public static class CatalogVo {
        private Long catalogId;     // id
        private String catalogName; // 分类名字   例：手机 合约机 二手手机
    }

}
